The present invention relates generally to technical analysis. More particularly, the present invention relates to a method of chart markup and annotation in technical analysis.
Technical financial analysis, as opposed to fundamental analysis, uses the past price, volume activity, or other measures of a stock, or of a market as a whole, to predict the future direction of the stock or market. Technical analysis can also be applied to other time series such as medical data, electrocardiogram results, or any other data that can be presented as a time series, and in which it is desirable to identify turning points, trends, formations or other information. The results of a technical analysis are usually shown in charts or graphs that are studied by technical analysts to identify known trends and patterns in the data to forecast future performance. Recognizing patterns in the charts and graphs is greatly enhanced by efficient pattern recognition and automated chart annotation.
A number of terms of art are used in the present specification. An inbound trend is a series of higher highs or lower lows that lead into a price pattern. An indicator is a calculation based on stock price and/or volume that produces a number in the same unit as price. An example of an indicator is the moving average of a stock price. An oscillator is a calculation based on stock price and/or volume that produces a number within a range. An example of an indicator is the moving average convergence/divergence (MACD). A price chart is a graph of a company""s share price (Y-axis) plotted against units of time (X-axis).
The terms technical event, and fundamental event are coined terms to denote points such as the price crossing the moving average or the MACD crossing the zero-line. The technical event or fundamental event occurs at a specific point in time. The importance of most indicators and most oscillators can be represented as technical events. A technical event, as used herein, is the point in time where a stock price has interacted (e.g. crossed or bounced) with an indicator or a price pattern or an oscillator has crossed a threshold. There are other techniques that technical analysts use to interpret price history as well that can be represented as technical events. These, however, are more subjective and involve the subjective recognition of price formations or price patterns. Fundamental events are the point in time where a stock price has interacted (e.g. crossed or bounced) with a price value computed from company accounting and/or other economic data.
A price formation, price pattern or chart pattern is a pattern that indicates changes in the supply and demand for a stock, which cause prices to rise and fall. Over periods of time, these changes often cause visual patterns to appear in price charts. Predictable price movements often occur follow price patterns. A reversal pattern is a type of price pattern that is believed to indicate a change in the direction of a price trend. If prices are trending down then a reversal pattern will be bullish since its appearance is believed to indicate prices will move higher. Examples of bullish reversal patterns include double bottoms and head and shoulder bottoms. Similarly, if prices are trending up then a reversal pattern will be bearish. Examples of bearish reversal patterns include double tops and head and shoulder tops.
Graphs of time series, for example financial time series, sometimes exhibit specific formations prior to moving in a particular direction. Some relevant price formations have been described by a number of authors, including Edwards, R. D. and Magee, J. xe2x80x9cTechnical Analysis of Stock Trendsxe2x80x9d ISBN 0-8144-0373-5, St. Lucie Press 1998 and Murphy, J. J. xe2x80x9cTechnical Analysis of the Futures Marketsxe2x80x9d ISBN 0-13-898008-X, New York Institute of Finance 1986. To anticipate the likely behaviour of some time series, it is advantageous to be able to recognise predictive formations as soon as they occur. Many predictive formations share a common characteristic of being capable of representation by a stylised zigzag line, or by connecting the pivot points of the zigzag lines. Explanations given in Murphy, supra, are largely framed around this concept.
One well-known technique in technical analysis is point and figure charting. In point and figure charting, the price of, for example, a stock is plotted as columns of rising X""s and falling O""s to denote price movement greater than, or equal to, a threshold amount, denoted a box size. Unlike other charting methods, such as open, high, low, close (OHLC), bar or candlestick, where price action is plotted according to time, point and figure charting is time independent and price, not time, dictates how point and figure charts take shape. For example, a series of volatile trading sessions over the course of a week could fill an entire page or screen in a point and figure chart, whereas a month of inactivity or static range trading might not be reflected on the chart, depending on the chosen box size. The box size determines how much background xe2x80x9cnoisexe2x80x9d is removed from the price action, and, hence, the granularity of the resulting chart. The factors that typically influence the choice of box size include volatility and the time horizon being examined.
The technique of conventional point and figure charting is described in detail in Kaufman, P. J. xe2x80x9cTrading Systems and Methodsxe2x80x9d ISBN 0-413-14879-2, John Wiley and Sons 1996. In summary, a box size, datum price and datum time, are chosen. If a new high exceeds the sum of the current datum plus a box size, and X is written in a column and the datum price shifted to the datum plus box size. When the market reverses by more than some multiple of the box size, a column of Os is formed, and continues in a similar manner until the market reverses by more that the prescribed multiple of box sizes. One attractive feature of point and figure charting is the fact that conventionally accepted chart formations used in technical analysis, such as double tops and triangles, can be clearly identified. Buy signals can be generated when prices surpass a previous bottom pivot point by one or more boxes, and the reverse for sell signals. This eliminates much of the subjectivity of other analysis techniques. However, it is much easier for users to view the results of such a technical analysis on a conventional time-based chart.
Another technique also known is to use a neural net through which open-high-low-close-volume data (i.e. the data stream) flows to recognize pattern formations. If the incoming data stream represents a pattern that the neural net has been trained to recognize then a xe2x80x9cswitchxe2x80x9d gets flipped by the data point in the stream that confirmed the pattern. At this point the neural net reports a numerical value that represents the level of certainty that it associates with the existence of the pattern. Thus, if it xe2x80x9cseesxe2x80x9d a pattern that it is less certain of the numerical value will be small (e.g. close to zero), whereas, if it seems a pattern it is sure of then the value will be high (e.g. close to one).
Given this simple view of a neural net, one can understand that the neural net has no knowledge of the position or scope of the pattern other than to say that it was confirmed at the point in time associated with the data point that triggered the switch. Thus, in order to obtain markup to annotate a pattern additional information or a different approach is required.
Currently, there is no way to automatically map the results of pattern recognition based on pivot point determination or neural net recognition to a conventional time series chart, and to provide relevant annotation based on the recognition. It is, therefore, desirable to provide a method for automatically generating markup and annotating a chart based on previously recognized patterns and trends in the underlying data.
It is an object of the present invention to obviate or mitigate at least one disadvantage of previous methods for charting in technical analysis. It is a particular object of the present invention to provide a method for generating chart markup and directly annotating a time series chart based on categorized pivot points and recognized patterns in the time series, particularly time series of financial data, such as stock prices.
According to a first aspect, there is provided a method for generating markup for annotating a chart of time series data. A rich feature set of technical event data related to the time series data is stored in a database. The rich feature set includes identification of pivot points in the time series data, pattern recognition data derived from the identified pivot points, and rating and quality assessments derived from the pattern recognition data, the identified pivot points and the time series data. The method comprises receiving, from a client, a request for markup information related to an event. Features associated with the event are then selected from the rich feature set. Markup tags are then determined in accordance with the selected features, and the markup tags are assembled, in accordance with a markup format, to generate a markup block for the event. The markup block contains the requested markup information. The markup is then sent to the client. Feature selection rules and markup rules are generally predetermined in accordance with pattern type and time series data type.
In a further embodiment, the method includes displaying the time series as a chart at the client location, and annotating the chart in accordance with the markup information. The method can also include analyzing and manipulating the markup information at the client. The client can also specify a desired format for the markup information in the initial request. Preferably, the markup information is initially provided as an XML block, and then transformed, if desired, into any other desired format, such SOAP, MS Excel, MS Word, ICE or HTML. Typically the features are also selected in accordance with the request.
In a further aspect, the present invention provides a method for generating markup for annotating a chart of time series data having an associated rich feature set as described above. The method comprises selecting features associated with an event from the rich feature set; determining markup tags in accordance with the selected features; and assembling the markup tags, in accordance with a markup format, to generate a markup block for the event.
In yet another aspect, the present invention provides a method for annotating a time series chart. The method first comprises receiving time series data for formation recognition; identifying pivot points in the time series data; performing formation recognition based on the identified pivot points to provide formation recognition data; and characterizing the time series data and rating the formation recognition data to provide characterization data. A rich feature set based on the time series data, the pattern recognition data and the characterization data is then stored in a database. A request for markup information for a chart based on the time series data is then received from an outside client. To provide the markup information, features are selected from the rich feature set and markup tags are determined in accordance with the selected features. The markup tags are then assembled, in accordance with a predetermined markup format, to generate a markup block. The markup block, containing the requested markup information, is then sent to the client.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.